package fiuba.algo3.gpschallenge.gui;

import java.awt.Dimension;
import java.awt.Font;
import java.awt.SystemColor;
import java.util.Iterator;

import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.SwingConstants;

import fiuba.algo3.gpschallenge.Controlador.Controlador;
import fiuba.algo3.gpschallenge.modelo.Juego;
import fiuba.algo3.gpschallenge.modelo.Puntaje;
import javax.swing.ListSelectionModel;
import javax.swing.border.EtchedBorder;
import javax.swing.border.BevelBorder;

public class PanelPuntajes extends JPanel {
	
	private Agregable interfazAgregable;
	private Controlador control;
	private Juego modelo;
	private final int ALTO = 350;
	private final int ANCHO = 700;

	

	public PanelPuntajes(Agregable interfazM, Juego modelo, Controlador control) {
		setBackground(SystemColor.window);
		setLayout(null);
		interfazAgregable = interfazM;
		this.modelo = modelo;
		this.control = control;
		setPreferredSize(new Dimension(ANCHO, ALTO));
		
		JLabel lblRanking = new JLabel("Ranking");
		lblRanking.setFont(new Font("Times New Roman", Font.BOLD, 30));
		lblRanking.setHorizontalAlignment(SwingConstants.CENTER);
		lblRanking.setBounds(225, 11, 202, 68);
		add(lblRanking);
		
		
				
		modelo.cargarRanking();
		modelo.getRanking().ordenar();
		
		
		//Creo las listas que van a ser mostradas por Ranking
		int tamanioDelRanking = this.modelo.getRanking().getCantidadDePuntajes();
		
		//Recupero los nombres de los jugadores
		String[] nombresJugadores = this.modelo.getRanking().devolverNombresDeJugadoresEnRanking();
		
		//Tomo los puntajes de cada jugador
		String[] puntajesJugadores = new String[tamanioDelRanking];
		Iterator<Puntaje> iteradorRanking = this.modelo.getRanking().getPuntajes().iterator();
		
		for (int i = 0; i < tamanioDelRanking; i++){
			puntajesJugadores[i] = Integer.toString(iteradorRanking.next().getPuntos());
			
		}
		
		
		JList listaJugadores = new JList(nombresJugadores);
		listaJugadores.setVisibleRowCount(15);
		listaJugadores .setBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));
		listaJugadores .setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		listaJugadores .setLocation(199, 90);
		listaJugadores .setSize(200, 441);
		add(listaJugadores );
		
		
		
		
		JList listaPuntajes = new JList(puntajesJugadores);
		listaPuntajes.setVisibleRowCount(15);
		listaPuntajes.setBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));
		listaPuntajes.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		listaPuntajes.setLocation(397, 90);
		listaPuntajes.setSize(49, 441);
		add(listaPuntajes);
		
		
		
		
		
		
		
		
		
		
		
		
	}
}
